import Vue from 'vue'
import Vuex from 'vuex'
import QQMapWX from "../lib/qqmap-wx-jssdk.js"
Vue.use(Vuex);
const state = { // 初始化状态值--一定要有该属性对象         
	PageCur: "home", //底部导航页面路径
	newCity: "北京", //当前城市
	screen: {
		top: 0,
		height: 0
	},
	certs: [], //证书列表
	salary: [], //薪资范围
	education: [],
	userInfo: {},
	sessionId: '', //sessionId
	isRealName: "", //是否实名, 
	userId: '', //用户id
	sfzh: '', //身份证号
	avatar:'', //头像
	username:'',//用户名
	resumeId: '' ,//简历id
	isComplete:'',//简历完整度
	background:'',//工作经验
	certTags:[], //证书列表
	position:[], //地区
	guanzhuGZH:'', //关注公众号显示状态 false已关注不显示
	tishiInfo:{}
}
const mutations = { // 自定义改变state初始值的方法--一定要有该属性对象
	// 用户id
	newUserId(state, res) {
		state.userId = res
	},
	newGZH(state, res) {
		state.guanzhuGZH = res
	},
	newIsComplete(state, res) {
		state.isComplete = res
	},
	newUsername(state, res) {
		state.username = res
	},
	newAvatar(state, res) {
		state.avatar = res
	},
	newIsRealName(state, res) {
		state.isRealName = res
	},
	getResumeId(state, res) {
		state.resumeId = res
	},
	newSessionId(state, res) {
		state.sessionId = res
	},
	newSfzh(state, res) {
		state.sfzh = res
	},
	changePageCur(state, res) {
		state.PageCur = res
	},
	userInfo(state, res) {
		state.userInfo = res
	},
	// 更新后的城市
	newCityFun(state, newCity) {
		state.newCity = newCity
	},
	// 证书列表
	changeCert(state, certsList) {
		state.certs = certsList
	},
	// 薪资范围
	changeSalary(state, data) {
		state.salary = data
	},
	// 学历
	changeEdu(state, data) {
		state.education = data
	},
	// 证书列表
	changeCerts(state, data) {
		state.certTags = data
	},
	// 地区列表
	changePosition(state,data){
		state.position=data
	},
	//工作经验
	changeBackground(state,data){
		state.background=data
	},
	// 提示信息
	changeTishiInfo(state,data){
		state.tishiInfo=data
	}
	
}
const getters = { // 状态计算属性--该属性对象不是必须的            
}
const actions = { // 异步操作状态--该属性对象不是必须的
	// 城市定位
	getCity(context) {

		// 向用户发起授权请求，弹框提示
		uni.authorize({
			// 获取用户定位信息
			scope: "scope.userLocation",
			// 用户同意授权执行
			success(res) {
				// 引入腾讯地图api
				// 实例化API核心类
				let qqmapsdk = new QQMapWX({
					// 填写自己的Key值，这个值是与AppID绑定的
					key: 'ZJRBZ-MGWKI-G2WG5-56DEQ-XZBEH-ZIBUR'
				});
				//获取位置信息
				uni.getLocation({
					type: 'gcj02',
					success: function(res) {
						// 逆地址解析方法
						qqmapsdk.reverseGeocoder({
							location: {
								latitude: res.latitude,
								longitude: res.longitude
							},
							success(res) {
								var newCity = ''
								// 取到用户的定位城市，赋值传递出去
								newCity = res.result.address_component.city
								context.commit('newCityFun', newCity)

							}
						})
					},
					fail() {
						var newCity = '北京'
						context.commit('newCityFun', newCity)
					}
				})
			},
			// 若用户不同意授权，弹框提示
			fail(res) {
				uni.showToast({
					icon: "none",
					title: '注意：需要获取您的定位授权,否则部分功能将无法使用',
					duration: 2000
				})
			}
		})
	},
	// 获取证书
	getCerts(context) {
		uni.request({
			url: 'https://www.chuanjianbao.com/buildtreasure/sys/dict',
			method: 'GET',
			header: { //请求头可自定义
				'Content-Type': 'application/json;charset=UTF-8',
				// 'X-Access-Token': TOKEN
				'Cookie': 'JSESSIONID=' + uni.getStorageSync('sessionId')
			},
			data: {
				enumCode: "person"
			},
			success(res) {
				if (res.data.code == 200) {
					let data = res.data.data
					context.commit('changeCert', data)
				}
			}
		})

	},
	// 薪资范围
	getSalary(context) {
		uni.request({
			url: 'https://www.chuanjianbao.com/buildtreasure/sys/dict',
			method: 'GET',
			header: { //请求头可自定义
				'Content-Type': 'application/json;charset=UTF-8',
				// 'X-Access-Token': TOKEN
				'Cookie': 'JSESSIONID=' + uni.getStorageSync('sessionId')
			},
			data: {
				enumCode: "salary"
			},
			success(res) {
				if (res.data.code == 200) {
					let data = res.data.data

					context.commit('changeSalary', data)
				}
			}
		})

	},
	// 学历
	getEdu(context) {
		uni.request({
			url: 'https://www.chuanjianbao.com/buildtreasure/sys/dict',
			method: 'GET',
			header: { //请求头可自定义
				'Content-Type': 'application/json;charset=UTF-8',
				// 'X-Access-Token': TOKEN
				'Cookie': 'JSESSIONID=' + uni.getStorageSync('sessionId')
			},
			data: {
				enumCode: "education"
			},
			success(res) {
				if (res.data.code == 200) {
					let data = res.data.data
					
					context.commit('changeEdu', data)
				}
			}
		})

	},
	// 证书列表
	certs(context) {
		uni.request({
			url: 'https://www.chuanjianbao.com/buildtreasure/sys/cert',
			method: 'GET',
			header: { //请求头可自定义
				'Content-Type': 'application/json;charset=UTF-8',
				// 'X-Access-Token': TOKEN
				'Cookie': 'JSESSIONID=' + uni.getStorageSync('sessionId')
			},
			data: {},
			success(res) {
				if (res.data.code == 200) {
					let data = res.data.data
					
					context.commit('changeCerts', data)
				}
			}
		})

	},
	// 地区
	getPosition(context) {
		uni.request({
			url: 'https://www.chuanjianbao.com/buildtreasure/api/pcaData.json',
			method: 'GET',
			header: { //请求头可自定义
				'Content-Type': 'application/json;charset=UTF-8',
				// 'X-Access-Token': TOKEN
				'Cookie': 'JSESSIONID=' + uni.getStorageSync('sessionId')
			},
			data: {},
			success(res) {
					let data = res.data
					context.commit('changePosition', data)
			}
		})

	},
	// 工作经验
	getBackground(context) {
		uni.request({
			url: 'https://www.chuanjianbao.com/buildtreasure/sys/dict',
			method: 'GET',
			header: { //请求头可自定义
				'Content-Type': 'application/json;charset=UTF-8',
				// 'X-Access-Token': TOKEN
				'Cookie': 'JSESSIONID=' + uni.getStorageSync('sessionId')
			},
			data: {
				enumCode: "background"
			},
			success(res) {
				if (res.data.code == 200) {
					let data = res.data.data
					context.commit('changeBackground', data)
				}
			}
		})
	
	},
	// 提示信息
	tishiInfoList(context){
		uni.request({
			url: 'https://www.chuanjianbao.com/buildtreasure/sys/msg/notice',
			method: 'GET',
			header: { //请求头可自定义
				'Content-Type': 'application/json;charset=UTF-8',
				// 'X-Access-Token': TOKEN
				'Cookie': 'JSESSIONID=' + uni.getStorageSync('sessionId')
			},
			data: {},
			success(res) {
				if (res.data.code == 200) {
					// 存储到本地，在投递简历显示返回值使用，具体在全局http
					uni.setStorageSync('backInfo',res.data)
					let data = res.data
					context.commit('changeTishiInfo', data)
				}
			}
		})
	}

}
const modules = { // 状态模块--该属性对象不是必须的
}

const store = new Vuex.Store({
	state,
	mutations,
	getters,
	actions,
	modules
})

export default store
